package haoyou.csnf.manager.module.pm.controller.admin.employeeinfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import jakarta.validation.constraints.*;
import haoyou.csnf.manager.module.pm.dal.dataobject.employeeeducations.EmployeeEducationsDO;
import haoyou.csnf.manager.module.pm.dal.dataobject.employeetitles.EmployeeTitlesDO;

@Schema(description = "管理后台 - 职工信息新增/修改 Request VO")
@Data
public class EmployeeInfoSaveReqVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7555")
    private Long id;

    @Schema(description = "所属部门", example = "8595")
    private Integer depId;

    @Schema(description = "职位序列", example = "13746")
    private Integer seqId;

    @Schema(description = "职位", example = "1")
    private Integer posId;

    @Schema(description = "类型", example = "2")
    private String empType;

    @Schema(description = "姓名", example = "李四")
    private String empName;

    @Schema(description = "工号")
    private String empNo;

    @Schema(description = "手机")
    private String mobile;

    @Schema(description = "性别")
    private String gender;

    @Schema(description = "生日")
    private LocalDateTime birthDate;

    @Schema(description = "身份证号")
    private String idNo;

    @Schema(description = "政治面貌", example = "2")
    private String politicalStatus;

    @Schema(description = "民族")
    private String ethnicity;

    @Schema(description = "婚姻状况", example = "1")
    private String maritalStatus;

    @Schema(description = "籍贯")
    private String hometown;

    @Schema(description = "英语等级", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "英语等级不能为空")
    private String englishLevel;

    @Schema(description = "校外工作起始日期")
    private LocalDateTime externalDate;

    @Schema(description = "学院入职时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "学院入职时间不能为空")
    private LocalDateTime collegeEntryDate;

    @Schema(description = "身份证地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "身份证地址不能为空")
    private String idAddress;

    @Schema(description = "现家庭地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "现家庭地址不能为空")
    private String homeAddress;

    @Schema(description = "教师资格证")
    private String teacherCert;

    @Schema(description = "资格证编号")
    private String teacherCertNo;

    @Schema(description = "银行卡号")
    private String bankCardNumber;

    @Schema(description = "紧急联系人")
    private String emergencyContact;

    @Schema(description = "与紧急联系人关系")
    private String contactRelationship;

    @Schema(description = "紧急联系人电话")
    private String emergencyPhone;

    @Schema(description = "身份标记")
    private String typeFlag;

    @Schema(description = "状态标记")
    private String statusFlag;

    @Schema(description = "备注信息")
    private String remarks;

}